import { Module } from '@nestjs/common';
import { ReportsController } from './index.controller';
import { ReportsService } from './index.service';

// @Module() 装饰器接收四个属性：providers、controllers、imports、exports。
@Module({
  // imports：导入模块的列表，如果需要使用其他模块的服务，需要通过这里导入；
  imports: [],
  // exports：导出服务的列表，供其他模块导入使用。如果希望当前模块下的服务可以被其他模块共享，需要在这里配置导出；
  exports: [ReportsService],
  // controllers：controllers 属性用于指定当前模块中的控制器类。控制器负责处理传入的请求，并返回响应。包括处理权限校验、处理 VO、处理异常等。
  controllers: [ReportsController],
  // providers：Nest.js注入器实例化的提供者（服务提供者），处理具体的业务逻辑，各个模块之间可以共享（注入器的概念后面依赖注入部分会讲解）；
  providers: [ReportsService],
})
export class ReportsModule {}
